#include <cstdio>
#include <algorithm>
#include <set>
using namespace std;
int n;
int cube[6][4];
int tmp[6][4];
bool check(){
    bool flag=true;
    set<int> color;
    for(int i=0;i<6;i++){
        color.insert(cube[i][0]);
        if(cube[i][0]!=cube[i][1] || cube[i][1]!=cube[i][2] || cube[i][2]!=cube[i][3]){
            flag=false;
            break;
        }
    }
    //printf("%d %d\n",flag,color.size());
    return flag && color.size();
}
int main(void){
    scanf("%d",&n);
    while(n--){
        for(int i=0;i<6;i++){
            for(int j=0;j<4;j++){
                scanf("%d",&cube[i][j]);
                tmp[i][j]=cube[i][j];
            }
        }
        bool flag=true;
        if(check()){
            printf("YES\n");
            flag=false;
        }
        else{
            int a,b;
            //top +
            a=cube[1][0],b=cube[1][1];
            cube[1][0]=cube[5][2],cube[1][1]=cube[5][0];
            cube[5][2]=cube[3][3],cube[5][0]=cube[3][2];
            cube[3][3]=cube[4][1],cube[3][2]=cube[4][3];
            cube[4][1]=a,cube[4][3]=b;
            if(check()){
                printf("YES\n");
                flag=false;
                continue;
            }

            for(int i=0;i<6;i++){
                for(int j=0;j<4;j++){
                    cube[i][j]=tmp[i][j];
                }
            }

            //top -
            a=cube[1][0],b=cube[1][1];
            cube[1][0]=cube[4][1],cube[1][1]=cube[4][3];
            cube[4][1]=cube[3][3],cube[4][3]=cube[3][2];
            cube[3][3]=cube[5][2],cube[3][2]=cube[5][0];
            cube[5][2]=a,cube[5][0]=b;
            if(check()){
                printf("YES\n");
                flag=false;
                continue;
            }

            for(int i=0;i<6;i++){
                for(int j=0;j<4;j++){
                    cube[i][j]=tmp[i][j];
                }
            }

            //front +
            a=cube[0][2],b=cube[0][3];
            cube[0][2]=cube[4][2],cube[0][3]=cube[4][3];
            cube[4][2]=cube[2][1],cube[4][3]=cube[2][0];
            cube[2][1]=cube[5][2],cube[2][0]=cube[5][3];
            cube[5][2]=a,cube[5][3]=b;
            if(check()){
                printf("YES\n");
                flag=false;
                continue;
            }

            for(int i=0;i<6;i++){
                for(int j=0;j<4;j++){
                    cube[i][j]=tmp[i][j];
                }
            }

            //front -
            a=cube[0][2],b=cube[0][3];
            cube[0][2]=cube[5][2],cube[0][3]=cube[5][3];
            cube[5][2]=cube[2][1],cube[5][3]=cube[2][0];
            cube[2][1]=cube[4][2],cube[2][0]=cube[4][3];
            cube[4][2]=a,cube[4][3]=b;
            if(check()){
                printf("YES\n");
                flag=false;
                continue;
            }

            for(int i=0;i<6;i++){
                for(int j=0;j<4;j++){
                    cube[i][j]=tmp[i][j];
                }
            }

            //right +
            a=cube[0][1],b=cube[0][3];
            cube[0][1]=cube[1][1],cube[0][3]=cube[1][3];
            cube[1][1]=cube[2][1],cube[1][3]=cube[2][3];
            cube[2][1]=cube[3][1],cube[2][3]=cube[3][3];
            cube[3][1]=a,cube[3][3]=b;
            if(check()){
                printf("YES\n");
                flag=false;
                continue;
            }

            for(int i=0;i<6;i++){
                for(int j=0;j<4;j++){
                    cube[i][j]=tmp[i][j];
                }
            }

            //right -
            a=cube[0][1],b=cube[0][3];
            cube[0][1]=cube[3][1],cube[0][3]=cube[3][3];
            cube[3][1]=cube[2][1],cube[3][3]=cube[2][3];
            cube[2][1]=cube[1][1],cube[2][3]=cube[1][3];
            cube[1][1]=a,cube[1][3]=b;
            if(check()){
                printf("YES\n");
                flag=false;
                continue;
            }
        }
        if(flag){
            printf("NO\n");
        }
    }
    return 0;
}